﻿using System.Collections.Generic;
using System.ComponentModel;
using ToyStore.Domain.System;

namespace ToyStore.Domain.Store
{
	/// <summary>
	/// Klasa przechowująca informacje o produktach w koszyku.
	/// </summary>
	[DisplayName("Koszyk")]
	public class Cart : BaseEntity
	{
		/// <summary>
		/// Konstruktor.
		/// </summary>
		public Cart()
		{
			CartItems = new List<CartItem>();
		}

		/// <summary>
		/// Numer Guid koszyka.
		/// </summary>
		[DisplayName("Numer koszyka")]
		public virtual string CartGuid { get; set; }

		/// <summary>
		/// Po zalogowaniu podstawiamy użytkownika, do którego należy koszyk.
		/// </summary>
		[DisplayName("Użytkownik")]
		public virtual User User { get; set; }

		/// <summary>
		/// Produkty w koszyku.
		/// </summary>
		[DisplayName("Produkty")]
		public virtual IList<CartItem> CartItems { get; set; }

		/// <summary>
		/// Zamówienie, stworzone na podstawie koszyka.
		/// </summary>
		[DisplayName("Zamówienie")]
		public virtual Order Order { get; set; }

		/// <summary>
		/// Sumarczyna wartość produktów w koszyku (netto).
		/// </summary>
		[DisplayName("Wartość netto")]
		public virtual decimal SumPriceNetto { get; set; }

		/// <summary>
		/// Sumarczyna wartość produktów w koszyku (brutto).
		/// </summary>
		[DisplayName("Wartość brutto")]
		public virtual decimal SumPriceBrutto { get; set; }

		/// <summary>
		/// Ilość przedmiotów w koszyku.
		/// </summary>
		[DisplayName("Ilość produktów")]
		public virtual int Amount { get; set; }
	}
}
